Dart.Mail 名前空間 > TcpBase クラス > Read メソッド : Read(Byte[],Int32,Int32) メソッド |
このメソッドは単一のソケット読み取りを実行し、"count"バイトを要求します。ソケットは少なくとも1バイトが読み取られるか、リモートホストが接続を閉じるか、または例外がスローされるまで、処理をブロックします。 SocketError.Timeoutを示すSocketExceptionが発生したとき、ソケットは閉じません。その他のSocketExceptionは致命的であり、ソケットはこのクラスによって自動的に閉じられます。
ReceiveTimeoutプロパティは、SocketError.Timeout例外がスローされるまでの時間の長さを制御します。
private void button1_Click(object sender, EventArgs e) { // 別のスレッドでデータを受信します。 myComponent.Start(readLoopWorker, null); } private void readLoopWorker(object state) { // リモートホストから送信されたときにデータを受信します。 byte[] buffer = new byte[1024]; Data data = myComponent.Read(buffer); while (data != null) { myComponent.Marshal(data, "", null); data = myComponent.Read(buffer); } myComponent.Close(); } private void myComponent_Data(object sender, Dart.Sockets.DataEventArgs e) { // データが受信されるたびに、そのデータを表示します。 textDisplay.AppendText(e.Data.ToString()); }
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 別のスレッドでデータを受信します。 myComponent.Start(AddressOf readLoopWorker, Nothing) End Sub Private Sub readLoopWorker(ByVal state As Object) ' リモートホストから送信されたときにデータを受信します。 Dim buffer(1023) As Byte Dim data As Data = myComponent.Read(buffer) Do While data IsNot Nothing myComponent.Marshal(data, "", Nothing) data = myComponent.Read(buffer) Loop myComponent.Close() End Sub Private Sub myComponent_Data(ByVal sender As Object, ByVal e As Dart.Sockets.DataEventArgs) Handles myComponent.Data ' データが受信されるたびに、そのデータを表示します。 textDisplay.AppendText(e.Data.ToString()) End Sub